'use strict';
const path = require('path');
/**
 * @param {Egg.Application} app - egg application
 */

module.exports = app => {

  //挂载utils
  app.loader.loadToApp(        //将utils模块 挂载到 app 上
    path.join(app.baseDir, "app/utils"),    // 规范化生成的路径
    "utils",
    {
      caseStyle: 'lower',//小写    this.app.模块名.小写方法名   调用
      ignore: 'test.js',//忽略 test.js 文件   这里配置 你需要忽略的文件  被忽略的文件 将不能通过 this.app.模块名.方法  访问
    }
  );

  app.beforeStart(async () => {
    // 应用会等待这个函数执行完成才启动,同步模型到数据库
    await app.model.sync({ force: false });
  });

  const { router, controller } = app;
  // console.log("controller.system==", controller.system);

  //文件上传相关接口
  router.post('/common/sms/sendCode', controller.common.sms.sendCode);

  //文件上传相关接口
  router.post('/common/upload/img', controller.common.upload.zipimg);

  //代码生成相关接口
  router.post('/tool/generater/tablelist', controller.tool.generater.tablelist);
  router.post('/tool/generater/genCode', controller.tool.generater.genCode);
  router.get('/tool/generater/genCodeColumns', controller.tool.generater.genCodeColumns);
  router.post('/tool/generater/settingCodeColumns', controller.tool.generater.settingCodeColumns);

  //首页相关接口
  router.get('/', controller.system.home.index);

  //权限相关接口
  router.get('/auth/getImgCode', controller.system.auth.getImgCode);
  router.post('/auth/login', controller.system.auth.login);
  router.get('/auth/getRsaPublicPem', controller.system.auth.getRsaPublicPem);
  router.get('/auth/loginOut', controller.system.auth.loginOut);
  router.get('/auth/getAuthentication', controller.system.auth.getAuthentication);

  //用户相关接口
  router.get('/users/list', controller.system.users.list);
  router.post('/users/add', controller.system.users.add);

  //部门相关接口
  router.get('/dept/list', controller.system.dept.list);
  router.post('/dept/add', controller.system.dept.add);

  router.post('/sys_test/querylist', controller.system.sysTest.querylist);
  router.post('/sys_test/add', controller.system.sysTest.add);
  router.post('/sys_test/delete', controller.system.sysTest.delete);
  router.post('/sys_test/querybyid', controller.system.sysTest.querybyid);

  //菜单管理
  router.post('/sys_menu/querylist', controller.system.sysMenu.querylist);
  router.post('/sys_menu/add', controller.system.sysMenu.add);
  router.post('/sys_menu/edit', controller.system.sysMenu.edit);
  router.post('/sys_menu/delete', controller.system.sysMenu.delete);
  router.post('/sys_menu/querybyid', controller.system.sysMenu.querybyid);
  router.get('/sys_menu/queryTreeList', controller.system.sysMenu.queryTreeList);

  //角色管理
  router.post('/sys_role/querylist', controller.system.sysRole.querylist);
  router.post('/sys_role/add', controller.system.sysRole.add);
  router.post('/sys_role/delete', controller.system.sysRole.delete);
  router.post('/sys_role/querybyid', controller.system.sysRole.querybyid);
  router.post('/sys_role/edit', controller.system.sysRole.edit);
  router.post('/sys_role/querymenubyroleid', controller.system.sysRole.queryMenuByRoleId);
  router.post('/sys_role/setrolemenu', controller.system.sysRole.setRoleMenu);
  router.post('/sys_role/queryfunctionbyroleid', controller.system.sysRole.queryFunctionByRoleId);
  router.post('/sys_role/setrolefunction', controller.system.sysRole.setRoleFunction);
  
  //功能管理
  router.post('/sys_function/querylist', controller.system.sysFunction.querylist);
  router.post('/sys_function/add', controller.system.sysFunction.add);
  router.post('/sys_function/delete', controller.system.sysFunction.delete);
  router.post('/sys_function/querybyid', controller.system.sysFunction.querybyid);
  router.post('/sys_function/edit', controller.system.sysFunction.edit);

  /**********************************移动端接口分割线*******************************************************************************/
  /**********************************移动端接口分割线*******************************************************************************/
  router.post('/api/auth/wxlogin', controller.api.auth.wxlogin);
  router.post('/api/auth/loginPhone', controller.api.auth.loginPhone);
  router.post('/api/auth/getAccessToken', controller.api.auth.getAccessToken);



  router.post('/api/hrbeu/downword', controller.api.hrbeu.downword);
  router.post('/api/hrbeu/getHrbTempId', controller.api.hrbeu.getHrbTempId);
  router.post('/api/hrbeu/saveBykey', controller.api.hrbeu.saveBykey);
  router.post('/api/hrbeu/getValueByKey', controller.api.hrbeu.getValueByKey);

  router.post('/api/sexual/sign', controller.api.sexual.sign);
  router.post('/api/sexual/getDataList', controller.api.sexual.getDataList);

  /**********************************测试接口分割线*******************************************************************************/
  /**********************************测试接口分割线*******************************************************************************/
  router.post('/test/xlsl/insert', controller.test.xlsl.insert);
};

